Dynamic linking of codesets in universal remote control devices

ABSTRACT

A codeset having function-code combinations is provisioned on a controlling device to control functions of an intended target device. Input is provided to the controlling device which designates a function to be controlled on the intended target device. From a plurality of codes that are each associated with the designated function in a database stored in a memory of the controlling device a first code that is determined to be valid for use in controlling the designated function on the intended target device is selected. When the codeset is then provisioned on the controlling device, the provisioned codeset includes as a function-code combination thereof the designated function and the first code.

RELATED APPLICATION INFORMATION

This application is a continuation of and claims the benefit of U.S.application Ser. No. 13/005,017, filed on Jan. 12, 2011, whichapplication claims the benefit of and is a continuation of U.S.application Ser. No. 11/655,419, filed on Jan. 19, 2007, the disclosuresof which are each incorporated herein by reference in their entirety.

TECHNICAL FIELD

The disclosed embodiments relate to dynamic linking of multiple codesetsfor generating operational signals, such as those transmitted from auniversal remote control device.

BACKGROUND

A universal remote control device transmits operational signals tocontrol one or more electronic consumer devices such as TVs, VCRs, cableset-top boxes, and CD/DVD players. Each operational signal communicatesa keycode associated with a selected electronic consumer device. Eachkeycode corresponds to a function of the selected electronic consumerdevice, such as power on, power off, volume up, volume down, play, stop,select, channel up, channel down, etc. A particular brand and make ofelectronic consumer device responds to operational signals containing aparticular set of keycodes and performs the corresponding functions.

In order to provide the functionality of a universal remote controldevice, various types of keycodes are stored in codesets as a codesetdatabase format. Each codeset is identified by a three digit device codeassociated with a particular brand and make of an electronic consumerdevice.

There are more than ten thousand codesets used in the market. Because ofthe large number of different electronic consumer devices, the amount ofmemory space required to store the entire codeset database is large.Various compression schemes are used to store the codeset database withreduced memory. Typically, a universal remote control device stores lessthan one thousand codesets due to limited memory space.

After a universal remote control device has been manufactured, it islikely that the remote control does not have a particular codeset thatcontains all the keycodes corresponding to all functions of a particularbrand and make of a consumer electronic device. For instance, the remotecontrol device is able to control the power, volume, and channel of atelevision when it is programmed to use codeset #1. However, the remotecontrol device cannot control the picture-in-picture function of the TVwhen it is programmed to use codeset #1. On the other hand, the remotecontrol device is able to control the picture-in-picture function of theTV when it is programmed to use codeset #2. However, when the remotecontrol device is programmed to use codeset #2, it cannot control thepower, volume, and channel of the TV.

Some remote control devices provide additional programmable keys on theremote control device to allow the user to define his/her own desiredkeycodes. However, the number of programmable keys available on a remotecontrol device is limited. The programmable keys are therefore usuallyused for advanced functions. Some other remote control devices provide a“key mover” feature which allows a user to reassign a functionassociated with one key to another key. The “key mover” featureincreases flexibility, but it does not solve the problem that aparticular codeset does not contain all keycodes corresponding to allfunctions of a selected electronic consumer device.

Sometimes it is also desirable for a user to be able to control multipleelectronic consumer devices without having to reprogram the universalremote control device.

For instance, a user may want to be able to control the power ofmultiple devices types. The “punch through” feature works for apredefined set of keys, typically, the TV channel and volume up/downkeys. Another feature known as “double-press” is available on someremote control devices. The “double-press” feature of the power key is,however, hard to use and inflexible, because the user either has to turnon the power of all the devices or has to turn off the power of all thedevices by double-pressing the power key quickly.

A solution is desired.

SUMMARY

A universal remote control device stores various codesets to controlvarious types of electronic consumer devices. A user programs theuniversal remote control device to use a selected codeset to control aselected electronic consumer device. Typically, a universal remotecontrol device stores a few hundred codesets (less than one thousandcodesets) due to limited memory space. Therefore, it is likely that auniversal remote control device does not have a particular codeset thatcontains all the keycodes corresponding to all functions of a particularbrand and make of electronic consumer device. Moreover, it is likelythat a universal remote control device is not able to control differenttypes of electronic consumer devices without being programmed withdifferent codesets.

In one example, a user programs a universal remote control device to usecodeset #1 that contains a set of keycodes to control a particular brandand make of electronic consumer device. The selected electronic consumerdevice responds to operational signals communicating the keycodes andperforms the corresponding functions. However, the selected electronicconsumer device does not respond and perform a desired function when theuser presses KEY X on the remote control device.

In one embodiment, the user presses a predefined sequence of keys on theremote control device to search (sometimes called “auto scan”) for thekeycode associated with KEY X for the selected electronic consumerdevice. Suppose that the keycode is found in codeset #2. The user thenpresses KEY X in combination with another predefined key on the remotecontrol device to “dynamically link” the keycode in codeset #2 tocodeset #1. A keycode link routine executing on a processor inside theremote control device generates keycode link information and stores thekeycode link information in a volatile memory space. The keycode linkinformation includes a codeset identifier of codeset #2 and a keyidentifier of KEY X associated with the keycode. Thereafter, when theuser presses KEY X, the remote control device uses the keycode linkinformation to access codeset #2 and then generates an operationalsignal communicating the keycode associated with KEY X. The selectedelectronic consumer device responds to the operational signal andperforms the desired function.

In another example, a user programs a universal remote control device touse codeset #1. Codeset #1 contains a set of keycodes to control a firstelectronic consumer device. However, the user also wishes to control asecond electronic consumer device that performs a desired functionwithout reprogramming the universal remote control device with adifferent codeset. Suppose that KEY Y corresponds to the desiredfunction.

In one embodiment, the user presses a predefined sequence of keys on theremote control device to search for (“auto scan” for) the keycode thatcorresponds to the desired function of the second electronic consumerdevice. Suppose that the keycode is found in codeset #2. The user thenpresses KEY Z in combination with another predefined key on the remotecontrol device to “dynamically link” the keycode in codeset #2 tocodeset #1. A keycode link routine executing on a processor inside theremote control device generates keycode link information and stores thekeycode link information in a volatile memory space. In this example,KEY Y is used to control the first electronic consumer device for thedesired function. The user links both KEY Z and the keycode associatedwith KEY Y in codeset #2 to codeset #1 such that KEY Z can be used tocontrol the second electronic consumer device for the same function.Therefore, the keycode link information includes a codeset identifier ofcodeset #2, a key identifier of KEY Y, and a key identifier of KEY Z.Thereafter, when the user presses KEY Z, the remote control device usesthe keycode link information to access codeset #2 and then generates anoperational signal communicating the keycode associated with KEY Y. Thesecond electronic consumer device responds to the operational signal andperforms the desired function. Other embodiments and advantages aredescribed in the detailed description below.

This summary does not purport to define the invention. The invention isdefined by the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, where like numerals indicate like components,illustrate embodiments of the invention.

FIG. 1 illustrates a system in accordance with one novel aspect.

FIG. 2 is a simplified diagram of a circuit within a universal remotecontrol device.

FIG. 3 is a detailed diagram of a device index table, a codeset indextable, a protocol table, a key index table, and two codesets of FIG. 2.

FIG. 4 illustrates an example of dynamic linking of two codesets inaccordance with one novel aspect.

FIG. 5 is a flow chart of a method of dynamic linking of two codesets.

FIG. 6 is a flow chart of a method of using keycode link information toaccess dynamically linked codesets.

FIG. 7 illustrates another example of dynamically linked codesetsinvolved in the methods of FIGS. 5 and 6.

DETAILED DESCRIPTION

Reference will now be made in detail to some embodiments of theinvention, examples of which are illustrated in the accompanyingdrawings.

FIG. 1 is a diagram of a system 1 in accordance with, one novel aspect.System 1 includes a remote control device 2, a first electronic consumerdevice 3, and a second electronic consumer device 4. A user uses remotecontrol device 2 to control a selected electronic consumer device.Although an ordinary handheld infrared remote control device isdepicted, the remote control device can take other forms and may, forexample, be a personal digital assistant (PDA), or personal computer orany other suitable device. In the example of FIG. 1, the user may presskey 5 on remote control device 2 to turn on/off the power of the firstelectronic consumer device 3, a television. When the user presses key 5,remote control device 2 emits an operational signal 6 from a LED (lightemitting diode) 7. Operational signal 6 is transmitted to an infraredreceiver 8 of TV 3. Infrared receiver 8 interprets operational signal 6and takes appropriate action, which in this case is to turn on the TV ifit is off, or to turn off the TV if it is on.

Remote control device 2 of FIG. 1 is a universal remote control device.The user programs remote control device 2 to send out operationalsignals to control several types of electronic consumer devices, such asTVs, VCRs, cable set-top boxes, and CD/DVD players. For example, toprogram remote control device 2 to control a particular brand and makeof TV 3, the user first presses device key 9 for device type “TV”, andthen inputs a three digit device code. Thereafter, when the user presseskey 5, operational signal 6 is transmitted to control TV 3. Similarly,to program remote control device 2 to control a particular brand andmake of cable set-top box 4, the user first presses the device key 10for device type “cable”, and then inputs a three digit device code.Thereafter, when the user presses key 5, operational signal 11 istransmitted to control cable set-top box 4.

FIG. 2 is a simplified diagram of a circuit within remote control device2 of FIG. 1. The circuit of FIG. 2 includes a set of keys 12, amicrocontroller integrated circuit 13, and an infrared LED 14.Microcontroller 13 includes a processor 15, a read-only memory (ROM) 16,and a random-access memory (RAM) 17. ROM 16 stores software program 18executable by processor 15 and a codeset database 19 (sometimes referredas a codeset library). Program 18 includes a keycode link routine 20.Codeset database 19 includes a key index table 21, a codeset index table22, a set of codesets 23, 24 (for instance, codeset TV000 and TV001 asillustrated), and a protocol table 25. RAM 17 stores a device indextable 26, and keycode link information 27. Microcontroller 13 performskey-scanning and determines the row and column coordinates of any keythat is pressed by the user.

FIG. 3 is a detailed diagram of device index table 26, codeset indextable 22, protocol table 25, keycode index table 21, and codeset 23 ofFIG. 2. When a user presses a key on remote control device 2 of FIG. 1,processor 15 of FIG. 2 accesses device index table 26 to obtain thethree digit device code that the user has programmed (for instance, 000for TV device type). Processor 15 then accesses codeset index table 22to obtain the byte 0 address of codeset 23 corresponding to the threedigit device code (for instance, codeset TV000 as illustrated).Processor 15 also accesses key index table 21 to obtain the offset valueof the flag bit (in the flag bytes of codeset 23) corresponding to thekey coordinates that the user has pressed. Using the offset value,processor 15 identifies the flag bit in codeset 23 and determineswhether the keycode of the pressed key is present in codeset 23. Thekeycode of the pressed key is present if the flag bit is of value 1. Thekeycode of the pressed key is not present if the flag bit is of value 0.If the keycode is found in codeset 23, then processor 15 uses thekeycode to generate an operational signal according to the timing andmodulation scheme information of protocol table 25 (sometimes the timingand modulation scheme information is included within the keycode).

FIG. 4 is a diagram of a device index table 26, a codeset index table22, two codesets 28, 29, keycode link information 27, and electronicconsumer device TV 3 that are involved in a method of dynamic linking oftwo codesets in accordance of one novel aspect. FIG. 5 is a flow chartof the dynamic linking method that links codesets 28 and 29. FIG. 6 is aflow chart of accessing the linked codesets 28 and 29 using keycodelinking information 27.

In the example of FIG. 4, remote control device 2 is programmed tocontrol a particular brand and make of TV 3 using codeset 28 (TV123).Codeset TV123 contains various keycodes (for instance, keycodes #1-#4are illustrated) corresponding to different keys on remote controldevice 2. Suppose that keycode #1 is associated with the volume up (VUP)key, keycode #2 is associated with the volume down (VDN) key, keycode #3is associated with the picture-in-picture (PIP) key and keycode #4 isassociated with the split-picture (SPLIT) key. When a user presses theVUP key on remote control device 2, processor 15 of FIG. 2 accessescodeset TV123 and determines whether the keycode of the pressed VUP keyis present in codeset TV123. In this particular example, the flag bytehas a value of 01100110, with flagbit #1=0, flagbit #2=1, flagbit #3=1,and so forth. Assume that the VUP key is indicated by flagbit #2according to the offset value of key index table 21 of FIG. 3. Becauseflagbit #2 has a digital value of 1, processor 15 determines thatkeycode #1 associated with the VUP key is present in codeset TV123 anduses keycode #1 to generate an operational signal to increase the volumeof TV 3. Similarly, when the user presses the PIP key, processor 15accesses codeset TV123 and determines whether the PIP key is present incodeset TV123. Assume that the PIP key is indicated by flagbit #6according to the offset value of key index table 21 of FIG. 3. Becauseflagbit #6 has a digital value of 1, processor 15 determines thatkeycode #3 associated with the PIP key is present in codeset TV123 anduses keycode #3 to generate an operational signal to display apicture-in-picture screen on TV 3.

In one situation, most of the functions of TV 3 are performed correctlyby pressing the corresponding keys on remote control device 2 that isprogrammed to use codeset TV123. For instance, TV 3's power is turnedon/off when the power key is pressed, its channel goes up/down when thechannel up/down key is pressed, and its volume goes up/down when thevolume up/down key is pressed. However, the picture-in-picture screen isnot displayed on TV 3 when the PIP key is pressed. Although codesetTV123 includes keycode #3 associated with the PIP key, the operationalsignal generated using keycode #3 in codeset TV123 does not perform thedesired picture-in-picture function for TV 3. In the example of FIG. 4,there is another codeset 29 (TV345) that is also stored in ROM 18 ofremote control device 2. Codeset TV345 contains various keycodesincluding keycode #3 associated with the PIP key. In another situation,most of the functions of TV 3 are not performed correctly by pressingthe corresponding keys on remote control device 2 that is programmed touse codeset TV345. However, the picture-in-picture screen is displayedon TV 3 when the PIP key is pressed. Therefore, if the user programsremote control device 2 to use codeset TV123, then most of the keys onremote control device 2 work properly except for the PIP key. On theother hand, if the user programs remote control device 2 to use codesetTV345, then the PIP key works properly except for most of the otherkeys.

FIG. 5 illustrates a method of dynamic linking of codeset TV123 andTV345 such that the PIP key also works properly for remote controldevice 2 that is programmed to use codeset TV123. In the example of FIG.5, remote control device 2 is programmed to use codeset TV123 to controlTV 3 and most of the keys work properly except for the PIP key. In thefirst step 30 of FIG. 5, the user presses and holds the TV device key,and then presses and releases the EXIT key to enter a search mode. Instep 31, the user presses and holds the EXIT key, and then presses andreleases the PIP key to start automatic searching for keycodesassociated with the PIP key. During the auto search (also called “autoscan”), the remote control device transmits operational signalscorresponding to keycodes associated with the PIP key starting fromcodeset TV000, TV001, W002, and so forth. There is a 5 second gapbetween successive transmissions. When a picture-in-picture screenappears on TV 3, the user stops the auto search by pressing the EXIT key(step 32). An identifier of the codeset just transmitted (for instance,TV345) is saved in a temporary location. The user then decides either torestart or to stop the search by toggling the EXIT key. In order to linkthe keycode associated with the PIP key, the user presses and holds theMENU key, and then presses and releases the PIP key (step 33). The usercontinues this searching and linking operation by going back to step 31.Otherwise, in step 34, the user exits the search mode by pressing the TVdevice key and the EXIT key together.

When two codesets are dynamically linked in step 33 of FIG. 5, keycodelink routine 20 generates and stores keycode link information 27 in RAM17 of FIG. 2. In the example of FIG. 4, keycode link information 27includes the programmed codeset identifier #1 (for instance, TV123), thelinked codeset identifier #2 (for instance, TV345), and a keycode keyidentifier (for instance, value 21 as illustrated) of the linked PIPkey. A key identifier is a value that represents a key on a remotecontrol device. The key identifier is used to determine the coordinateof the pressed key in the key index table. In the example of FIG. 4,keycode link information 27 also includes a substitute flag byte, with anew value of 01100000 as compared to the original value of 01100110. Inthe substitute flag byte, flagbit #6 has a new digit value of 0indicating that the keycode associated with the PIP key in codeset TV123no longer exists (is no longer to be used).

FIG. 6 is a flow chart of a method of accessing the linked codesetsusing keycode link information 27 after codesets TV123 and TV345 havebeen dynamically linked. In one scenario, the user presses the VUP keyin step 35. In the next step 36, processor 15 determines whether theprogrammed codeset TV123 is dynamically linked by examining keycode linkinformation 27. In this example, codeset TV123 is linked because keycodelink information 27 contains codeset identifier #1, TV123. Processor 15then uses the substitute flag byte to access codeset TV123 in step 37.Because flagbit #2 has a digital value of 1 in the substitute flagbyte,processor 15 determines in step 38 that keycode #1 associated with theVUP key is present in codeset TV123. In step 39, processor 15 useskeycode #1 in TV123 to generate operational signal #1 of FIG. 4 toincrease the volume of TV 3.

In another scenario, the user presses the PIP key in step 35. Processor15 then determines (step 36) that the programmed codeset TV123 islinked. Processor 15 then uses the substitute flag byte to accesscodeset TV123 in step 37. Because flagbit #6 has a digital value of 0 inthe substitute flag byte, processor 15 determines in step 38 thatkeycode #3 associated with the PIP key in codeset TV123 is no longerpresent (is no longer to be used). In step 40, processor 15 uses thecodeset identifier #2 in keycode link information 27 to access codesetTV345. In step 41, processor 15 uses the keycode key identifier inkeycode link information 27 to obtain the key coordinate of the PIP key.Because the key coordinate matches the pressed PIP key, processor 15then uses the keycode key identifier to determine that keycode #3associated with the PIP key is present in codeset TV345. Finally, instep 39, processor 15 uses keycode #3 in codeset TV345 to generateoperational signal #2 of FIG. 4 to display a picture-in-picture screenon TV 3. Thus, without reprogramming remote control device 2, both VUPkey and PIP key perform their corresponding functions properly whenremote control device 2 is programmed to use codeset TV123.

In the above example, only one keycode associated with the PIP key incodeset TV345 is linked to codeset TV123. Because the picture-in-picturefunction is closely related to the split-screen function, it is verylikely that the keycode associated with the SPLIT key in codeset TV345also works for the same electronic consumer device TV 3.

In one method, the PIP key and the SPLIT key are predefined such thatthey belong to the same cluster of keys. A cluster is a set of keys thatis associated with a given set of functions. If a key in a cluster is intwo different codesets, then there is a high probability that other keysin the cluster will also be present in both codesets. When the PIP keyin codeset TV345 is linked to codeset TV123, the SPLIT key, as a memberof the same cluster of keys, is automatically linked to codeset TV123 aswell. As illustrated in FIG. 4, keycode link information 27 alsoincludes the SPLIT key identifier. When the user presses the SPLIT key,processor 15 follows the steps illustrated in FIG. 6 and uses keycode #4in codeset TV345 to generate an operational signal to display a splitscreen on TV 3.

FIG. 7 illustrates another example of dynamic linking of two codesets inaccordance with one novel aspect. FIG. 7 is a diagram of device indextable 26, codeset index table 22, two codesets 43, 44, keycode linkinformation 27, and two electronic consumer devices 45, 46 that areinvolved in the dynamic linking method.

In the example of FIG. 7, remote control device 2 is programmed withcodeset CABLE301 to control cable set-top box 46. The user uses remotecontrol device 2 to turn on/off the power and to change the channelselected by cable set-top box 46. However, in order to turn on/off thepower of TV 45, the user has to reprogram remote control device 2 to usecodeset TV101 by pressing the TV device key. The user follows the stepsin FIG. 5 to link the two codesets CABLE301 and TV101. The user firstfollows step 30 of FIG. 5 to enter the search mode. In step 31, the userpresses the EXIT and the POWER key together to start automatic searchingfor keycodes associated with the POWER key. When TV 45 is powered on,the user stops the auto search by pressing the EXIT key (step 32). Anidentifier of the codeset just transmitted (for instance, TV101) issaved in a temporary location. In step 33, to link the keycodeassociated with the POWER key, the user presses and holds the MENU key,and then presses and releases a key other than the power key (forinstance, a GREEN key on the remote control device that is ordinarilynot used). The user finally exits the search mode by pressing the TVdevice key and the EXIT key together (step 34).

In this particular example, because the POWER key is used to control thepower of cable set-top box 46, the user links the keycode of the POWERkey in TV001 with a different physical key to control TV 45. Whenkeycode link routine 20 executes, it stores keycode link information 27in RAM 17 of FIG. 2. In the example of FIG. 7, keycode link information27 includes the programmed codeset identifier

#1 (for instance, CABLE301), the linked codeset identifier

#2 (for instance, TV101), a keycode key identifier (for instance, value6 as illustrated) of the linked POWER key, and a physical key identifier(for instance, value 32 as illustrated) of the GREEN key. Keycode linkinformation 27 also includes a substitute flag byte which remainsunchanged in this example.

Following the steps illustrated in FIG. 6, when the user presses a key(for instance the channel up key) on remote control device 2 that isprogrammed to use codeset CABLE301, processor 15 first determines thatcodeset CABLE301 is linked to another codeset because keycode linkinformation 27 contains the codeset identifier #1, CABLE301. Processor15 then accesses CABLE301 using the substitute flag byte in keycode linkinformation 27. In this example, processor 15 determines that keycode #1associated with the CHUP key is present in CABLE301. In step 39 of FIG.6, processor 15 uses keycode #1 in codeset CABLE301 to generateoperational signal #1 of FIG. 7 to increase the channel number selectedby cable set-top box 46.

When the user later presses the GREEN key, processor 15 also accessesCABLE301 using the substitute flag byte and determines that the keycodefor the GRENN key is not present in codeset CABLE301. Processor 15 thenuses the codeset identifier #2 in keycode link information 27 to accesscodeset TV101. In step 41, processor 15 uses the physical key identifierin keycode link information 27 to determine the key coordinate of theGREEN key. Because the key coordinate matches the pressed GREEN key,processor 15 then uses the keycode key identifier to determine thatkeycode#3 associated with the POWER key is present in codeset TV101.Finally, in step 39, processor 15 uses keycode #3 in codeset TV101 togenerate operational signal #2 of FIG. 7 to turn on/off the power of TV45.

Although certain specific exemplary embodiments are described above inorder to illustrate the invention, the invention is not limited to thespecific embodiments. Accordingly, various modifications, adaptations,and combinations of various features of the described embodiments can bepracticed without departing from the scope of the invention as set forthin the claims.

What is claimed is:
 1. A method for using a controlling device tocommand a functional operation of a controlled device, the method,comprising: storing in a data structure within a memory of thecontrolling device information that functions to link a first codesetstored in the memory of the controlling device with a second codesetstored in the memory of the controlling device and information thatfunctions to identify if the first codeset is to be accessed to retrievetherefrom a keycode for use in generating a command for transmission toa controlled device in response to an activation of an input element ofthe controlling device whereby, in response to an input element of thecontrolling device being activated, an identifier for the activatedinput element is used in connection with the information that functionsto link the first codeset stored in the memory of the controlling devicewith the second codeset stored in the memory of the controlling deviceand the information that functions to identify if the first codeset isto be accessed to retrieve therefrom a keycode for use in generating acommand for transmission to a controlled device in response to anactivation of an input element of the controlling device to cause thecontrolling device to access one of the first codeset and the secondcodeset, to retrieve from the accessed one of the first codeset and thesecond codeset a keycode corresponding to the identifier for theactivated input element, and to use the retrieved keycode to generate acommand for transmission to a controlled device.
 2. The method asrecited in claim 1, wherein the information that functions to identifyif the first codeset is to be accessed to retrieve therefrom a keycodefor use in generating a command for transmission to a controlled devicecomprises a flagbyte.
 3. The method as recited in claim 1, wherein thefirst codeset and the second codeset are intended for use in commandingfunctional operations of a controlled device of a same type and brand.4. The method as recited in claim 1, wherein the first codeset and thesecond codeset are intended for use in commanding functional operationsof a controlled device of a different type.
 5. The method as recited inclaim 1, wherein input received while in a setup mode of operation ofthe controlling device is used to populate the data structure with theinformation that functions to link the first codeset stored in thememory of the controlling device with the second codeset stored in thememory of the controlling device and the information that functions toidentify if the first codeset is to be accessed to retrieve therefrom akeycode for use in generating a command for transmission to a controlleddevice in response to an activation of an input element of thecontrolling device.
 6. The method as recited in claim 1, wherein theretrieved keycode is used to generate a command for transmission to acontrolled device via use of an infrared transmitter of the controllingdevice.
 7. The method as recited in claim 1, wherein the retrievedkeycode is used to generate a command for transmission to a controlleddevice via use of a radio frequency transmitter of the controllingdevice.
 8. The method as recited in claim 1, wherein at least a part ofthe information that functions to identify if the first codeset is to beaccessed to retrieve therefrom a keycode for use in generating a commandfor transmission to a controlled device in response to an activation ofan input element of the controlling device is automatically determinedby the controlling device.
 9. The method as recited in claim 1, whereinan auto-scan program is executed by the controlling device to assist inpopulating the data structure with the information that functions tolink the first codeset stored in the memory of the controlling devicewith the second codeset stored in the memory of the controlling deviceand the information that functions to identify if the first codeset isto be accessed to retrieve therefrom a keycode for use in generating acommand for transmission to a controlled device in response to anactivation of an input element of the controlling device.